package Dog_wk;

/**
 * 使用面向对象的思想，编写自定义描述狗的信息。设定属性包括：品种，年龄，性别，名字；方法包括：叫，跑。
 *
 * 要求：
 *
 * 1)设置属性的私有访问权限，通过公有的getter和setter方法实现对属性的访问
 *
 * 2)限定性别只能有“雌性”和“雄性”，如果无效输入进行提示，默认设置“雄性”。
 *
 * 3)设置构造函数实现对属性赋值
 *
 * 4)叫和跑的方法，描述不同的行为方式。
 *
 * 5)编写测试类，测试狗类的对象及相关方法（测试数据信息自定义）
 */
public class Dog {
    private String variety;
    private int age;
    private String gender;

    public Dog() {
    }

    public Dog(String variety, int age, String gender) {
        this.variety = variety;
        this.age = age;
        this.setGender(gender);
    }

    public String getVariety() {
        return variety;
    }

    public void setVariety(String variety) {
        this.variety = variety;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        if("雌性".equals(gender) || "雄性".equals(gender)){
            this.gender = gender;
        }
        else{
            System.out.println("性别只能为“雌性”和“雄性”");
        }
    }
    public void cry(){
        System.out.println("我是" + this.getVariety() + ",今年" + this.getAge() +  "岁" + ",性别：" +
                this.getGender() + ",正在汪汪叫");

    }

    public void run(){
        System.out.println("我是" + this.getVariety() + ",今年" + this.getAge() +"岁" + ",性别：" +
                this.getGender() + ",正在路上奔跑");
    }

}

/*
    测试类
 */
class TestDog{
    public static void main(String[] args) {
        Dog dog = new Dog(
                "阿拉斯加",1,"男"
        );
        dog.setGender("雄性");
        dog.cry();
        dog.run();
    }
}


